package com.th.supcom.pds.phamapply.client.service;

import java.util.Date;
import java.util.List;

import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.th.supcom.pds.phamapply.client.model.InpPhamApplyDetailModel;
import com.th.supcom.pds.phamapply.client.model.InpPhamApplyDetailSummaryModel;
import com.th.supcom.pds.phamapply.client.model.InpPhamApplyPatInfoModel;

/**
 * InpPhamApplyDetail 异步接口.
 * 
 * 住院摆药请领明细.
 */
public interface InpPhamApplyDetailRpcAsync
{
    void getInpPhamApplyDetailById (Long id, AsyncCallback <InpPhamApplyDetailModel> callback);

    void addInpPhamApplyDetail (InpPhamApplyDetailModel model, AsyncCallback <Void> callback);

    void modifyInpPhamApplyDetail (InpPhamApplyDetailModel model, AsyncCallback <Void> callback);

    void removeInpPhamApplyDetail (Long id, AsyncCallback <Void> callback);

    void getInpPhamApplyDetailListWithPaging (PagingLoadConfig config, AsyncCallback <PagingLoadResult <InpPhamApplyDetailModel>> callback);

    void getInpPhamApplyPatInfos (String nurseUnit, AsyncCallback <List <InpPhamApplyPatInfoModel>> callback);

    void findPhamApplyDetailInfo (List <InpPhamApplyPatInfoModel> inpPatInfoModels, String nurseUnit, Date applyDate, Date endDate, String applicant,
                                  String repetition, AsyncCallback <List <InpPhamApplyDetailModel>> callback);

    void saveInpPhamApplyDetailList (List <InpPhamApplyDetailModel> details, String nurseUnit, Date applyDate, Date endDate, String applicant,
                                     AsyncCallback <Void> callback);

    void getOffsetPhamSummaryList (List <InpPhamApplyDetailSummaryModel> summaryList, AsyncCallback <List <InpPhamApplyDetailModel>> callback);

    /** 公司版权信息. */
    public static final String copyright = "Copyright 2014, TH Supcom Corporation";

    /** 提交路径. */
    public static final String SCC_BRANCH = "$URL$";

    /** 提交日期. */
    public static final String SCC_LAST_MODIFICATION_DATE = "$Date$";

    /** 最终修改人员. */
    public static final String SCC_LAST_MODIFIER_NAME = "$Author$";

    /** 最终版本号. */
    public static final String SCC_REVISION = "$Revision$";
}
